const float blurSize = 1.0/256.0;
 
void main(void){
	vec4 blurv = vec4(0.0);
	vec4 blurh = vec4(0.0);

	blurv += texture(ge_Texture, vec2(ge_TexCoord0.x, ge_TexCoord0.y - 4.0*blurSize)) * 0.05;
	blurv += texture(ge_Texture, vec2(ge_TexCoord0.x, ge_TexCoord0.y - 3.0*blurSize)) * 0.09;
	blurv += texture(ge_Texture, vec2(ge_TexCoord0.x, ge_TexCoord0.y - 2.0*blurSize)) * 0.12;
	blurv += texture(ge_Texture, vec2(ge_TexCoord0.x, ge_TexCoord0.y - blurSize)) * 0.15;
	blurv += texture(ge_Texture, vec2(ge_TexCoord0.x, ge_TexCoord0.y)) * 0.16;
	blurv += texture(ge_Texture, vec2(ge_TexCoord0.x, ge_TexCoord0.y + blurSize)) * 0.15;
	blurv += texture(ge_Texture, vec2(ge_TexCoord0.x, ge_TexCoord0.y + 2.0*blurSize)) * 0.12;
	blurv += texture(ge_Texture, vec2(ge_TexCoord0.x, ge_TexCoord0.y + 3.0*blurSize)) * 0.09;
	blurv += texture(ge_Texture, vec2(ge_TexCoord0.x, ge_TexCoord0.y + 4.0*blurSize)) * 0.05;
	
	
	blurh += texture(ge_Texture, vec2(ge_TexCoord0.x - 4.0*blurSize, ge_TexCoord0.y)) * 0.05;
	blurh += texture(ge_Texture, vec2(ge_TexCoord0.x - 3.0*blurSize, ge_TexCoord0.y)) * 0.09;
	blurh += texture(ge_Texture, vec2(ge_TexCoord0.x - 2.0*blurSize, ge_TexCoord0.y)) * 0.12;
	blurh += texture(ge_Texture, vec2(ge_TexCoord0.x - blurSize, ge_TexCoord0.y)) * 0.15;
	blurh += texture(ge_Texture, vec2(ge_TexCoord0.x, ge_TexCoord0.y)) * 0.16;
	blurh += texture(ge_Texture, vec2(ge_TexCoord0.x + blurSize, ge_TexCoord0.y)) * 0.15;
	blurh += texture(ge_Texture, vec2(ge_TexCoord0.x + 2.0*blurSize, ge_TexCoord0.y)) * 0.12;
	blurh += texture(ge_Texture, vec2(ge_TexCoord0.x + 3.0*blurSize, ge_TexCoord0.y)) * 0.09;
	blurh += texture(ge_Texture, vec2(ge_TexCoord0.x + 4.0*blurSize, ge_TexCoord0.y)) * 0.05;
  
	ge_FragColor = blurv * blurh * 2.0;
}